home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # apropos -- search the whatis database for keywords.
- # whatis -- idem, but match only commands (as whole words).
- #
- # Copyright (c) 1990, 1991, John W. Eaton.
- # Copyright (c) 1994-1999, Andries E. Brouwer.
- #
- # You may distribute under the terms of the GNU General Public
- # License as specified in the README file that comes with the man
- # distribution.
- #
- # apropos/whatis-1.5m aeb 2003-08-01 (from man-1.6)
- #
- # keep old PATH - 000323 - Bryan Henderson
- # also look in /var/cache/man - 030801 - aeb
-
- program=`basename $0`
-
- # When man pages in your favorite locale look to grep like binary files
- # (and you use GNU grep) you may want to add the 'a' option to *grepopt1.
- aproposgrepopt1='i'
- aproposgrepopt2=''
- whatisgrepopt1='iw'
- whatisgrepopt2='^'
- grepopt1=$aproposgrepopt1
- grepopt2=$aproposgrepopt2
-
- if [ $# = 0 ]
- then
- echo "usage: $program keyword ..."
- exit 1
- fi
-
- manpath=`man --path | tr : '\040'`
-
- if [ "$manpath" = "" ]
- then
- echo "$program: manpath is null"
- exit 1
- fi
-
- args=
- for arg in $*; do
- case $arg in
- --version|-V|-v)
- echo "$program from man-1.6"
- exit 0
- ;;
- --help|-h)
- echo "usage: $program keyword ..."
- exit 0
- ;;
- -*)
- echo "$program: $arg: unknown option"
- exit 1
- ;;
- *)
- args="$args $arg"
- esac
- done
-
- while [ "$1" != "" ]
- do
- found=0
- for d in /var/cache/man $manpath /usr/lib
- do
- if [ -f $d/whatis ]
- then
- if grep -"$grepopt1" "$grepopt2""$1" $d/whatis
- then
- found=1
- # Some people are satisfied with a single occurrence
- # But it is better to give all
- # break
- fi
- fi
- done
-
- if [ $found = 0 ]
- then
- echo "$1: nothing appropriate"
- fi
-
- shift
- done
-
- exit
-